package math;

import java.util.Arrays;
import java.util.Scanner;

public class T01_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        float x = sc.nextFloat();  // 尾胚长度
//        float x = 42.7f;  // 尾胚长度
        int y = (int) (x / 9);  // 切割后所得段数
        float mod = x % 9;  // 余数
        float[] len = new float[(int) y];  // 每段长度
        mod = ((float)Math.round(mod*10))/10;
        System.out.println("保留一位小数:"+x);

        Arrays.fill(len, 9);
        System.out.println("段数:" + y);
        System.out.println(Arrays.toString(len));
        System.out.println("余数:" + mod);
/////////////////      讨论优先级      ///////////////////
//        现在思路很清晰了，
//        第一步，先搞足够9.0；
//        第二步，把yushu分配到未满9.5的段；
//        第三步，如果所有段都满9.5了，而yushu还有，就把yushu分配到未满10.0的段；
//        第四步，所有段都满10.0了，而0<yushu<=2.6，那么就把余数都加在最后一段；
//        第五步，所有段都满10.0了，而2.6<yushu<4.8，那么就把10的那部分取些出来，把yushu凑成4.8满足搬运，加在最后一段上


        boolean flag = true;
        while (mod != 0) {
//            if (mod <= 0.5 * y) {
//                float z = mod;
            for (int n = 0; n < y; n++) {
                len[n] = ((float)Math.round(len[n]*10))/10;

                mod = ((float)Math.round(mod*10))/10;
                System.out.println("减后:" + mod);

                if (mod >= 0.5) {
                    mod -= 0.5;

                    if (len[n] + 0.5 <= 10) len[n] += 0.5;
                    // 判断是否所有数至少等于10
                    int num = 0;
                    for (int i = 0; i < len.length; i++) {
                        if (len[i] == 10) {
                            num++;  // 计数器
                        }
                    }
                    if (num == len.length && (mod > 0 && mod <= 2.6)) {  //每一位都至少为10,已装满
                        len[len.length - 1] += mod;
                        mod -= mod;
                        break;
                    }
                    // 第五步 ???
                    if (mod > 2.6 && mod < 4.8) {

                        for(int i=0;i<len.length;i++){
                                len[i] -= 0.1;
                                mod += 0.1;
                                if(len[i]==9.5){
                                    i+=1;
                                    break;
                            }
                        }
//                            if (len[n] - 0.5 >= 9.5) {
//
//                        }
                    }
/////////////////      讨论优先级      ///////////////////
                } else {
                    len[n] += mod;
                    mod -= mod;
                    break;
                }
            }
//            }
//            else if()

        }
        System.out.println("最终余数:"+mod);
        System.out.println(Arrays.toString(len));

    }


}

